package com.dyz.wsw.front.market.service;

import com.dyz.wsw.front.market.pojo.entity.MarketCard;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;


/**
 * @author dyz
 * @date 2025/1/14 23:47
 */
public interface CardService {


    /**
     * 获取指定数量的随机卡片
     * @param count 指定数量
     * @return 指定数量的随机卡片
     */
    Flux<MarketCard> getRandCards(Integer count);


    /**
     * 获取更多卡片
     * @param cid 卡片目录
     * @param skipSize 跳过的条数
     * @param requestSize 请求的条数
     * @return 卡片数据
     */
    Flux<MarketCard> getMoreCards(Long cid,Integer skipSize,Integer requestSize);


    /**
     * 获取卡片总数量
     * @param cid 目录id
     * @return 卡片总数量
     */
    Mono<Long> getCardsCount(Long cid);


    /**
     * 获取指定页指定数量的卡片
     * @param cid 目录id
     * @param currentPage 当前页
     * @param requestCount 每页大小
     * @return 分页卡片数据
     */
    Flux<MarketCard> getCardsByPage(Long cid,Integer currentPage,Integer requestCount);
}
